package com.itheima.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 组织实体
 * @author 51585
 * @TableName organization
 */
@TableName(value ="organization")
@Data
public class Organization implements Serializable {
    private static final long serialVersionUID = 7147153142058464243L;
    /**
     * 组织id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 组织名
     */
    @ApiModelProperty(value = "组织名")
    @TableField(value = "name")
    private String name;

    /**
     * 管理该组织的组织id，没有更上一级组织时，值为0
     */
    @ApiModelProperty(value = "管理该组织的组织d")
    @TableField(value = "parent_id")
    private Integer parentId;

    /**
     * 该组织是否是叶子组织，是为1，不是为0
     */
    @ApiModelProperty(value = "该组织是否是叶子组织")
    @TableField(value = "is_child")
    private Integer isChild;

    /**
     * 权限层级
     */
    @ApiModelProperty(value = "权限层级")
    @TableField(value = "level")
    private Integer level;

    /**
     * 发布时间
     */
    @ApiModelProperty(value = "发布时间")
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "updated_at", fill = FieldFill.UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;

    /**
     * 删除时间
     */
    @ApiModelProperty(value = "删除时间")
    @TableField(value = "deleted_at")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableLogic
    private LocalDateTime deletedAt;
}
